package com.ruoyix.flowable.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyix.common.annotation.ExcelDictFormat;
import com.ruoyix.common.convert.ExcelDictConvert;
import lombok.Data;
import org.flowable.engine.task.Comment;

import java.util.Date;

import java.io.Serializable;
import java.util.List;

/**
 * 流程任务信息视图对象 bpm_task
 *
 * @author ruoyi
 * @date 2023-11-27
 */
@Data
@ExcelIgnoreUnannotated
public class BpmTaskVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 流程任务id
     */
    @ExcelProperty(value = "流程任务id")
    private String id;

    /**
     * 节点标识
     */
    private String taskDefinitionKey;


    /**
     * 任务名称
     */
    @ExcelProperty(value = "任务名称")
    private String name;

    /**
     * 启动时间
     */
    @ExcelProperty(value = "启动时间")
    private Date startTime;

    /**
     * 结束时间
     */
    @ExcelProperty(value = "结束时间")
    private Date endTime;

    /**
     * 流程实例id
     */
    @ExcelProperty(value = "流程实例id")
    private String processInstanceId;

    /**
     * 流程执行id
     */
    @ExcelProperty(value = "流程执行id")
    private String executionId;

    /**
     * 流程定义id
     */
    @ExcelProperty(value = "流程定义id")
    private String processDefinitionId;

    /**
     * 办理人或候选人
     */
    @ExcelProperty(value = "办理人或候选人")
    private String assignee;

    /**
     * 办理人或候选人ID
     */
    @ExcelProperty(value = "办理人或候选人ID")
    private String assigneeId;

    /**
     * 流程定义名称
     */
    @ExcelProperty(value = "流程定义名称")
    private String processDefinitionName;

    /**
     * 流程定义Key
     */
    @ExcelProperty(value = "流程定义Key")
    private String processDefinitionKey;

    /**
     * 父级任务id
     */
    @ExcelProperty(value = "父级任务id")
    private String parentTaskId;

    /**
     * 批注信息
     */
    private List<Comment> commentList;

    /**
     * 耗时
     */
    private String useTime;

    /**
     * 流程状态
     */
    private String taskState;


}
